﻿using System.Collections.Generic;
using GigaSite.Domain.Entities;

namespace GigaSite.Domain.Interfaces.Repositories
{
    /// <summary>
    /// Абстрактный репозиторий товаров
    /// </summary>
    public interface IGoodsRepository: IBaseRepository<Good>
    {
        /// <summary>
        /// Получает все товары, находящиеся в указанной категории
        /// </summary>
        /// <param name="category">Категория</param>
        /// <returns>Коллекция товаров</returns>
        IEnumerable<Good> GetGoodsInCategory(Category category);

        /// <summary>
        /// Устанавливает категории, в которых находится данный товар
        /// </summary>
        /// <param name="good">Товар</param>
        /// <param name="categories">Коллекция категорий</param>
        void SetGoodCategories(Good good, IEnumerable<Category> categories);
    }
}